package org.beanutopia.example;

import org.beanutopia.HasProperties;
import org.beanutopia.HTMap;
import org.beanutopia.UpdatableProperty;

/**
 * @author ymeymann
 * @since Apr 5, 2007 8:03:23 PM
 */
public class Man extends Person implements HasProperties {
  //Man<D extends Man> extends Person implements HTMap<D>

  protected HTMap HTMap = new HTMap();

  @SuppressWarnings({"serial"})
  public interface Properties {
    @TestAnnotation UpdatableProperty<Man, Person> wife =
          new UpdatableProperty<Man, Person>() {};
  }

  @SuppressWarnings({"unchecked"})
  @Override public Object clone() throws CloneNotSupportedException {
    Man clone = (Man) super.clone();
    clone.HTMap = this.HTMap.clone();
    return clone;
  }

  @Override public HTMap bean() {
    return HTMap;
  }
}
